home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 26
/
Cream of the Crop 26.iso
/
program
/
ddj0897.zip
/
DYN401.ZIP
/
class
/
pntrary.c
< prev
next >
Wrap
C/C++ Source or Header
|
1997-04-16
|
3KB
|
143 lines
/* Copyright (c) 1993-1996 Algorithms Corporation */
/* All rights reserved. */
/* This file automatically generated by dpp - do not edit */
#define DPP_STRATEGY 2
#define DPP_FASTWIDE 0
#line 17 "pntrary.d"
#include "array1.h"
#define CLASS PointerArray_c
#define ivType PointerArray_iv_t
#include "generics.h"
object PointerArray_c;
#line 25 "pntrary.d"
#define TYPE void *
static gIndex_t _index;
cvmeth objrtn PointerArray_cvm_vNew(object self, va_list _rest_)
{
unsigned rank = va_arg(_rest_, unsigned);
#line 33 "pntrary.d"
static gNewArray_t cnew = NULL;
MAKE_REST(rank);
if (!cnew)
cnew = cmcPointer(Array, gNewArray);
return cnew(self, AT_PNTR, rank, _rest_);
}
#line 48 "pntrary.c"
static objrtn PointerArray_cfm_vNew(object self, ...)
{
va_list _rest_;
va_start(_rest_, self);
return PointerArray_cvm_vNew(self, _rest_);
}
#line 41 "pntrary.d"
ivmeth void * PointerArray_ivm_vPointerValue(object self, va_list _rest_)
{
MAKE_REST(self);
return *((TYPE *) _index(self, _rest_));
}
#line 66 "pntrary.c"
static void * PointerArray_ifm_vPointerValue(object self, ...)
{
va_list _rest_;
va_start(_rest_, self);
return PointerArray_ivm_vPointerValue(self, _rest_);
}
#line 47 "pntrary.d"
ivmeth objrtn PointerArray_ivm_vChangeValue(object self, va_list _rest_)
{ void * val = va_arg(_rest_, void *);
MAKE_REST(val);
*((TYPE *) _index(self, _rest_)) = val;
return self;
}
#line 85 "pntrary.c"
static objrtn PointerArray_ifm_vChangeValue(object self, ...)
{
va_list _rest_;
va_start(_rest_, self);
return PointerArray_ivm_vChangeValue(self, _rest_);
}
#line 54 "pntrary.d"
static void init_class(void)
{
_index = imcPointer(Array, gIndex);
}
#line 101 "pntrary.c"
objrtn PointerArray_initialize(void)
{
static CRITICALSECTION cs;
static int volatile once = 0;
ENTERCRITICALSECTION(_CI_CS_);
if (!once) {
INITIALIZECRITICALSECTION(cs);
once = 1;
}
LEAVECRITICALSECTION(_CI_CS_);
ENTERCRITICALSECTION(cs);
if (PointerArray_c) {
LEAVECRITICALSECTION(cs);
return PointerArray_c;
}
INHIBIT_THREADER;
Array_initialize();
if (PointerArray_c) {
ENABLE_THREADER;
LEAVECRITICALSECTION(cs);
return PointerArray_c;
}
PointerArray_c = gNewClass(Class, "PointerArray", 0, 0, Array, END);
cvMethodFor(PointerArray, vNew, PointerArray_cvm_vNew, PointerArray_cfm_vNew);
ivMethodFor(PointerArray, vChangeValue, PointerArray_ivm_vChangeValue, PointerArray_ifm_vChangeValue);
ivMethodFor(PointerArray, vPointerValue, PointerArray_ivm_vPointerValue, PointerArray_ifm_vPointerValue);
init_class();
ENABLE_THREADER;
LEAVECRITICALSECTION(cs);
return PointerArray_c;
}